import json
import sys  
import io  
import smtplib  
from email.mime.text import MIMEText  
from urllib.request import urlopen, URLError  

# 设置输出编码为 UTF-8  
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')  

# 获取当前的东部时间  
def get_eastern_time():  
    eastern_time = "无法获取东部时间"  # 默认消息  
    try:  
        with urlopen('http://worldtimeapi.org/api/timezone/America/New_York') as response:  #因为防火墙或者URL无效，URL有时候访问不了会报错，更换URL获得想要的即可 
            data = json.loads(response.read().decode('utf-8'))  
            eastern_time = data['datetime']  # 获取当前时间  
    except URLError as e:  
        print(f"获取时间时出错: {e.reason}")  # 打印出错原因  
    return eastern_time  

# 邮件发送者和接收者  
sender_email = "sender_email@qq.com"  # 替换为您的 QQ 邮箱地址  
receiver_email = "receiver_email@example.com"  # 替换为接收者的电子邮件地址 ，其他邮箱地址也可以 
subject = "警告：小心三月的命运"  
body = f"小心三月的命运。\n当前东部时间是：{get_eastern_time()}"  # 在邮件正文中加入东部时间  

# 创建 MIMEText 对象  
msg = MIMEText(body)  
msg['Subject'] = subject  
msg['From'] = sender_email  
msg['To'] = receiver_email  

# 初始化 server 变量  
server = None  

# 发送电子邮件  
try:  
    # 连接到 QQ 邮箱的 SMTP 服务器  
    server = smtplib.SMTP('smtp.qq.com', 587)  # 使用 QQ 的 SMTP 服务器  #对应smtp的服务器和端口号
    server.starttls()  # 启用 TLS 加密  
    server.login(sender_email, 'uniytawftpkkhhhb')  # 使用 QQ 邮箱的授权码登录  #对应邮箱的用户名和授权码 
    server.sendmail(sender_email, receiver_email, msg.as_string())  # 发送邮件  
    print("邮件发送成功。")  
except Exception as e:  
    print(f"邮件发送失败: {e}")  # 捕获并打印发送邮件时的错误  
finally:  
    if server is not None:  
        server.quit()  # 确保服务器正常关闭